/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package pe.edu.sistemas.sse.entity;

import java.io.Serializable;
import java.util.Set;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
import javax.persistence.Table;
import org.hibernate.annotations.Proxy;

/**
 *
 * @author laptop-w8
 */
@Entity
@Table(name = "MEGRES")
@Proxy(lazy = false)
public class Egresado implements Serializable {

    @Id
    @Column(name = "DCODALMN_EGRES")
    private String dCodigoAlumno;
    @OneToOne(cascade = {CascadeType.ALL}, mappedBy = "egresado")
    @JoinColumn(name = "DCODALMN_PERS")
    private EgresadoDatosGenerales datosGenerales;
    @OneToOne(cascade = {CascadeType.ALL}, mappedBy = "egresado")
    @JoinColumn(name = "DCODALMN_ACDM")
    private EgresadoDatosAcademicos datosAcademicos;
    @OneToOne(cascade = {CascadeType.ALL}, mappedBy = "egresado")
    @JoinColumn(name = "DNM_USUEGRES")
    private UsuarioEgresado usuario;
    @ManyToOne(fetch = FetchType.EAGER)
    @JoinColumn(name = "CPRMING", referencedColumnName = "CPRMING", nullable = false)
    private PromocionIngreso promocionIngreso;
    @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER, mappedBy = "egresado")
    private Set<Postulacion> postulaciones;
    @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER, mappedBy = "egresado")
    private Set<EgresadoEstudio> estudios;
    @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER, mappedBy = "egresado")
    private Set<EgresadoOtroEstudio> ptroEstudios;
    @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER, mappedBy = "egresado")
    private Set<EgresadoIdioma> idiomas;
    @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER, mappedBy = "egresado")
    private Set<EgresadoConocimiento> conocimientos;
    @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER, mappedBy = "egresado")
    private Set<EgresadoExperiencia> experiencias;

    public String getdCodigoAlumno() {
        return dCodigoAlumno;
    }

    public void setdCodigoAlumno(String dCodigoAlumno) {
        this.dCodigoAlumno = dCodigoAlumno;
    }

    public EgresadoDatosGenerales getDatosGenerales() {
        return datosGenerales;
    }

    public void setDatosGenerales(EgresadoDatosGenerales datosGenerales) {
        this.datosGenerales = datosGenerales;
    }

    public EgresadoDatosAcademicos getDatosAcademicos() {
        return datosAcademicos;
    }

    public void setDatosAcademicos(EgresadoDatosAcademicos datosAcademicos) {
        this.datosAcademicos = datosAcademicos;
    }

    public UsuarioEgresado getUsuario() {
        return usuario;
    }

    public void setUsuario(UsuarioEgresado usuario) {
        this.usuario = usuario;
    }

    public PromocionIngreso getPromocionIngreso() {
        return promocionIngreso;
    }

    public void setPromocionIngreso(PromocionIngreso promocionIngreso) {
        this.promocionIngreso = promocionIngreso;
    }

    public Set<Postulacion> getPostulaciones() {
        return postulaciones;
    }

    public void setPostulaciones(Set<Postulacion> postulaciones) {
        this.postulaciones = postulaciones;
    }

    public Set<EgresadoEstudio> getEstudios() {
        return estudios;
    }

    public void setEstudios(Set<EgresadoEstudio> estudios) {
        this.estudios = estudios;
    }

    public Set<EgresadoOtroEstudio> getPtroEstudios() {
        return ptroEstudios;
    }

    public void setPtroEstudios(Set<EgresadoOtroEstudio> ptroEstudios) {
        this.ptroEstudios = ptroEstudios;
    }

    public Set<EgresadoIdioma> getIdiomas() {
        return idiomas;
    }

    public void setIdiomas(Set<EgresadoIdioma> idiomas) {
        this.idiomas = idiomas;
    }

    public Set<EgresadoConocimiento> getConocimientos() {
        return conocimientos;
    }

    public void setConocimientos(Set<EgresadoConocimiento> conocimientos) {
        this.conocimientos = conocimientos;
    }

    public Set<EgresadoExperiencia> getExperiencias() {
        return experiencias;
    }

    public void setExperiencias(Set<EgresadoExperiencia> experiencias) {
        this.experiencias = experiencias;
    }


}
